from alipay import AliPay
import random

# 1，准备支付宝的应用数据【调试是沙箱环境
# 应用ID
app_id = '2021000122672133'
# 商户号
pid = '2088721010678213'
# 公钥和私钥
public_key = open('alipay_public_key.pem').read()
private_key = open('app_private_key.pem').read()

# 2，订单支付的信息【自己的系统的订单信息
code = ''
for i in range(6):
    code += str(random.randint(0, 9))

# 订单号
order_on = f'20231017{code}'
# 订单金额
amount = '999.00'
# 支付宝页面显示的标题
subject = f'生鲜商城订单{order_on}支付'

# 3，初始化一个支付宝对象
pay = AliPay(
    appid=app_id,
    # 支付宝回调咱们系统url
    app_notify_url=None,
    app_private_key_string=private_key,
    alipay_public_key_string=public_key,
    # 开启Debug模式【沙箱环境下
    debug=True
)

params = pay.gen_alipay_params(out_trade_no='ORDER_NUMBER',
                                  subject='ORDER_SUBJECT',
                                  total_fee=100,
                                  body='ORDER_BODY',
                                  show_url='YOUR_SHOW_URL',
                                  terminal_type='0',
                                  terminal_info='PC')
# 4，生成手机应用的支付地址
# url = pay.api_alipay_trade_wap_pay(
#     subject=subject,  # 支付页面标题
#     out_trade_no=order_on,  # 订单编号
#     total_amount=amount,  # 订单金额
#     # 将产品部署到服务器进行配置
#     return_url=None,
#     notify_url=None,
# )

# 生成app端的支付地址
# api_alipay_trade_app_pay

# 生成pc端的支付地址
url = pay.api_alipay_trade_page_pay(
    subject=subject,  # 支付页面标题
    out_trade_no=order_on,  # 订单编号
    total_amount=amount,  # 订单金额
    # 将产品部署到服务器进行配置
    return_url=None,
    notify_url=None,
)

# 地址 = 网关地址 + ? + 生成的url地址
pay_url = 'https://openapi.alipaydev.com/gateway.do?' + url
print(pay_url)
